#!/bin/sh

# *************************************************************************
#     startgwm：gwm會話。
#     版權 (C) 2020-2025 gsm <406643764@qq.com>
#     本程序為自由軟件：你可以依據自由軟件基金會所發布的第三版或更高版本的
# GNU通用公共許可證重新發布、修改本程序。
#     雖然基于使用目的而發布本程序，但不負任何擔保責任，亦不包含適銷性或特
# 定目標之適用性的暗示性擔保。詳見GNU通用公共許可證。
#     你應該已經收到一份附隨此程序的GNU通用公共許可證副本。否則，請參閱
# <http://www.gnu.org/licenses/>。
# *************************************************************************

#set -x

get_network()
{
    interface=$(ip route get 1.1.1.1 2> /dev/null | head -n1 | cut -d' ' -f5)
    if [ -z "$interface" ]
    then
        echo 🚫
    elif echo $interface | grep wlan > /dev/null
    then
        echo 🛜
    else
        echo 🖧 
    fi
}

get_vol()
{
    vol=$(amixer get Master | tail -1 | sed 's/.*\[\([0-9]*\)%\].*/\1/')
    if amixer get Master | grep off > /dev/null
    then
        echo 🔇
    elif [ $vol -lt 25 ]
    then
        echo "🔈$vol%"
    elif [ $vol -lt 75 ]
    then
        echo "🔉$vol%"
    else
        echo "🔊$vol%"
    fi
}

get_time()
{
    date "+%m/%d %a %p%H:%M"
}

get_power()
{
    if acpi -a 2> /dev/null | grep line
    then
        if acpi -a 2> /dev/null | grep on-line
        then
            power="🔌$(acpi -b 2> /dev/null | awk '{ print $4 "+" $5 }' | tr -d ',')"
        else
            power="🔋$(acpi -b 2> /dev/null | awk '{ print $4 "-" $5 }' | tr -d ',')"
        fi
        echo $power
    fi
}

get_weather()
{
    # 中國天氣網(www.weather.com.cn)中城市id，在該網站中輸入城市名可在url看到id，
    weather_city_id=101280801

    if [ -n "$weather_city_id" ]
    then
        weather_url="http://forecast.weather.com.cn/town/weather1dn/$weather_city_id.shtml"
        rm -f /tmp/weather
        wget "$weather_url" -O /tmp/weather > /dev/null 2>&1 \
            && grep time.*minTemp /tmp/weather \
            | sed 's/.*temp":\([0-9\.]*\).*maxTemp":\([0-9\.]*\).*minTemp":\([0-9\.]*\).*.*weather":"\(.*\)".*/\1°C[\2-\3]\4/g'
    fi
}

get_root_name()
{
    echo "$(get_power) $(get_network) $(get_vol) $(get_time)" \
        | tr -s ' ' | sed 's/^ //' | sed 's/ $//'
}

main()
{
    [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources &

    while true
    do
        xsetroot -name "$(get_root_name)"
        sleep "10s" 
    done &

    while true
    do
        gwm
    done
}

main
